In U.S. application Ser. No. 12/987,986, entitled Real Time Verification of Web Applications, there is described a system in which a software developer of a web application, for example a multi-page website, can test and verify the functionality of such web application on various combinations of browsers and platforms. As described therein, the developer requests through a web-based test service a specific combination of browser and platform, which combination is typically launched on a cloud server. The developer then provides the web-based service with a test, which when executed, commands the browser to access the web application and to perform a series of steps, such as navigating through various pages of the website, as specified by the test.
As the test is being performed, the results of each step of the test, which may also include screenshots of the browser, are recorded by the web-based service. Upon conclusion of the test the log files of the test and any screenshots obtained are stored, and metadata which enables access to the log files and screenshots is transmitted the developer. Upon review of the log files and screenshots, the developer can identify and correct any errors or bugs in the web application that may have arisen. The developer will typically reiterate the test on further combinations of browsers and platforms, repeating the identification and correction of errors and bugs for each respective browser/platform combination.
Although the test as described above is useful to verify the functionality of web applications as such may be accessed by various combinations of browsers and platforms and to modify such applications in view of any errors or bugs found therein, such tests are limited in that the developer executes a series of steps which the developer has standardized for testing purposes or for which the developer believes users would most likely take upon accessing the web application. However, web applications presented as complete websites may contain an indeterminable number of paths which any user could take while browsing through the content of such sites.
Testing of every possible path through all the pages of the website, although comprehensive in its results, may also be prohibitively expensive as each step in the test consumes resources provided by the cloud-based testing service thereby disadvantageously resulting in increased overhead in the resources available, especially when multiplied by the number of browser/platform combinations on which the test is to be implemented. The increased consumption of cloud resources then often results in increased cost for the developer who typically needs to pay for such cloud resources. Thus if the developer has limited monetary resources, the number of browser/platform combinations in which the website may be tested may also be limited. Accordingly, the developer must either test every possible path through the website or rely solely upon speculation as to believe that users would most likely take.
Upon each path to a new page being taken during a test of a website, there is code for each page that is executed to enable the page to be rendered properly and to provide functionality in the user interface of the browser whereby the rendered page can be actively interacted with. Generally, the more lines of code which need to be executed, the longer it typically takes a page to render properly. Thus, there are known techniques which have been developed for measuring latency in rendering web pages so that the developer can identify and revise code which detracts from the user experience due to excessive latency.